package suanfajingpinke;

public class Test5 {
    //题目： 力扣 第6题 ： Z字形变换  其实是N字形变换
    //用到的算法 ： 模拟   + 找规律
    public String convert(String s, int numRows) {
        //处理一下特殊情况
        if(numRows == 1 || numRows == s.length()) {
            return s;
        }

        //先算出公差d
        int d = 2 * numRows -2;
        int n = s.length();
        StringBuffer buffer = new StringBuffer();
        //先处理第一行
        for(int i = 0; i <=n-1;i+=d) {
            buffer.append(s.charAt(i));
        }

        //处理中间行
        for(int k = 1; k < numRows-1; k++) {
            for(int i =k,j = d-k;i < n || j < n; i+=d, j +=d)  {
                if(i < n) buffer.append(s.charAt(i));
                if(j < n)  buffer.append(s.charAt(j));
            }
        }

        //处理最后一行
        for(int i = numRows-1; i <n; i+=d) {
            buffer.append(s.charAt(i));
        }
        return buffer.toString();
    }
    public static void main(String[] args) {

    }
}
